package cn.b.sky.mes.pp.dao;

import cn.b.sky.mes.pp.model.OperationTask;
import cn.b.sky.mes.pp.model.OperationTaskConfirm;
import cn.b.sky.mes.pp.model.ProductionControl;
import org.apache.ibatis.annotations.Param;

/**
 * 
 * <strong>Title : OperationConfirmDao.java<br></strong>
 * <strong>Package : cn.b.sky.mes.pp.dao<br></strong>
 * <strong>Description : </strong>工序报工业务接口<br> 
 * <strong>Create on : 2016年8月5日 下午4:07:06<br></strong>
 * <p>
 * @author zhaoxin01<br>
 * @version <strong>v1.0.0</strong><br>
 * <br>
 * <strong>修改历史:</strong><br>
 * 修改人|修改日期|修改描述<br>
 * -------------------------------------------<br>
 * <br>
 * <br>
 */
public interface OperationConfirmDao {
  /**
   * 
   * <strong>Title : selectOperationTask<br></strong>
   * <strong>Description : </strong>查询工序任务单<br> 
   * <strong>Create on : 2016年8月8日 上午11:29:00<br></strong>
   * <p>
   * @param siteCode
   * @param operationTaskNum
   * @param languageCode
   * @param eCodeType
   * @return
   * OperationTask
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public OperationTask selectOperationTask(@Param("siteCode") String siteCode, @Param("operationTaskNum") String operationTaskNum, @Param("languageCode") String languageCode, @Param("eCodeType") String eCodeType);
  
  /**
   * 
   * <strong>Title : doValidaUnitType<br></strong>
   * <strong>Description : </strong>验证作业单元与作业单元类型是否存在关联关系<br> 
   * <strong>Create on : 2016年8月8日 下午5:18:55<br></strong>
   * <p>
   * @param siteCode
   * @param workUnitCode
   * @param workUnitTypeCode
   * @return
   * int
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public int doValidaUnitType(@Param("siteCode")String siteCode,@Param("workUnitCode")String workUnitCode,@Param("workUnitTypeCode")String workUnitTypeCode);
  
  /**
   * 
   * <strong>Title : doValidaPersonnel<br></strong>
   * <strong>Description : </strong>验证人员是否存在<br> 
   * <strong>Create on : 2016年8月9日 下午1:08:07<br></strong>
   * <p>
   * @param siteCode
   * @param personnelCode
   * @return
   * int
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public int doValidaPersonnel(@Param("siteCode")String siteCode, @Param("personnelCode")String personnelCode, @Param("workCenterCode")String workCenterCode);
  
  /**
   * 
   * <strong>Title : selectOperationTaskForConfirm<br></strong>
   * <strong>Description : </strong>查询工序任务单（报工验证使用）<br> 
   * <strong>Create on : 2016年8月9日 下午3:39:29<br></strong>
   * <p>
   * @param siteCode
   * @param operationTaskNum
   * @return
   * OperationTask
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public OperationTask selectOperationTaskForConfirm(@Param("siteCode") String siteCode,@Param("operationTaskNum") String operationTaskNum);
  
  /**
   * 
   * <strong>Title : getLastTypeOperationTaskConfirm<br></strong>
   * <strong>Description : </strong>获得最近一条指定状态的报工记录<br> 
   * <strong>Create on : 2016年8月9日 下午4:45:31<br></strong>
   * <p>
   * @param siteCode
   * @param operationTaskNum
   * @param confirmTypeeCode
   * @return
   * OperationTaskConfirm
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public OperationTaskConfirm getLastTypeOperationTaskConfirm(@Param("siteCode") String siteCode, @Param("operationTaskNum") String operationTaskNum, @Param("confirmTypeeCode") String confirmTypeeCode);
  
  /**
   * 
   * <strong>Title : insertOperationTaskConfirm<br></strong>
   * <strong>Description : </strong>新增工序报工记录<br> 
   * <strong>Create on : 2016年8月9日 下午5:02:02<br></strong>
   * <p>
   * @param operationTaskConfirm
   * void
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public void insertOperationTaskConfirm(OperationTaskConfirm operationTaskConfirm);
  
  /**
   * 
   * <strong>Title : selectOperationTaskCompletedQuantity<br></strong>
   * <strong>Description : </strong>查询生产管理号完工数量、报废数量<br> 
   * <strong>Create on : 2016年8月10日 下午1:22:42<br></strong>
   * <p>
   * @param siteCode
   * @param productionControlNum
   * @return
   * ProductionControl
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  ProductionControl selectOperationTaskCompletedQuantity(@Param("siteCode")String siteCode, @Param("productionControlNum")String productionControlNum);
  
  /**
   * 
   * <strong>Title : selectLastOperationCompletedQuantity<br></strong>
   * <strong>Description : </strong>查询最后一道工序的完工数量<br> 
   * <strong>Create on : 2016年10月27日 上午10:54:00<br></strong>
   * <p>
   * @param siteCode
   * @param productionControlNum
   * @return
   * int
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  int selectLastOperationCompletedQuantity(@Param("siteCode") String siteCode,@Param("productionControlNum") String productionControlNum);
}
